#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>

using namespace std;

//void test1()
//{
//	string s1("hello world");
//	cout << s1 << endl;
//	cout << s1.size() << endl;
//	cout << s1.capacity() << endl;
//
//	/*s1.resize(20);
//	cout << s1 << endl;
//	cout << s1.size() << endl;
//	cout << s1.capacity() << endl;*/
//
//	s1.resize(20, 'x');
//	cout << s1 << endl;
//	cout << s1.size() << endl;
//	cout << s1.capacity() << endl;
//
//	s1[0]++;
//	s1.at(0)++;
//	cout << s1 << endl;
//	cout << s1.size() << endl;
//	cout << s1.capacity() << endl;
//}
//
//void test2()
//{
//	string s3("world");
//	string s2;
//	s2.resize(30);
//	s2.push_back('***');
//	s2.append("hello");
//	s2.append("hello");
//	cout << s2 << endl;
//
//}
//
//void test3()
//{
//	string s3("world");
//	string s2;
//	s2 += '#';
//	s2 += "hello";
//	s2 += s3;
//	cout << s2 << endl;
//}
//
//void test4()
//{
//	string s3("world");
//	string s4 = s3 + "hello";
//	cout << s4 << endl;
//}
//
//void test5()
//{
//	string str("xxxxxxxxxxxxx");
//	string base = ("what are you going to do?");
//	str.assign(base);
//	cout << str << endl;
//
//	str.assign(base, 5, 13);
//	cout << str << endl;
//}
//
//void test6()
//{
//	string str("hello world");
//	//str.insert(0, 'x');
//	str.insert(0, 3, 'x');
//	cout << str << endl;
//
//	str.insert(str.begin(), 'x');
//	cout << str << endl;
//
//	str.erase(6);
//	cout << str << endl;
//}
//
//void test7()
//{
//	string str("hello world");
//	str.replace(3, 1, "d");
//	cout << str << endl;
//
//	string str2("what are you going to do tomorrow");
//	string str3;
//	for (auto ch : str2)
//	{
//		if (ch != ' ')
//		{
//			str3 += ch;
//		}
//		else
//		{
//			str3 += "20%";
//		}
//	}
//	//swap(str2, str3);
//	str2.swap(str3);
//	cout << str2;
//}

//class complex
//{
//public:
//	double real, image;
//	complex(double r = 0.0, double i = 0.0)
//		:real(r), image(i)
//	{
//
//	}
//	complex operator-(const complex& c);
//};
//complex complex::operator-(const complex& c)
//{
//	return complex(real - c.real, image - c.image);
//}
//
//complex operator+(const complex& a, const complex& b)
//{
//	return complex(a.real + b.real, a.image + b.image);
//}

//class complex
//{
//public:
//	double real, image;
//	complex(double r = 0.0, double i = 0.0)
//		:real(r), image(i)
//	{
//
//	}
//	complex operator+(double r);
//	friend complex operator+(double r, const complex& c);
//};
//complex complex::operator+(double r)
//{
//	return complex(real + r, image);
//}
//complex operator+(double r, const complex& c)
//{
//	return complex(r + c.real, c.image);
//}
//int main()
//{
//	complex c;
//	c = c + 5;
//	//c.operator+(5);
//	c = 5 + c;
//	//c.operator+(5,c);
//	cout << c.real << " " << c.image << endl;
//	return 0;
//}
//int main()
//{
//	complex a(4, 4), b(1, 1), c;
//	c = a + b;
//	cout << c.real << "  " << c.image << endl;
//	cout << (a - b).real << "  " << (a - b).image << endl;
//	return 0;
//}